package per.hx.bs.entity.sys;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonView;
import org.springframework.format.annotation.DateTimeFormat;
import per.hx.bs.base.config.View;
import per.hx.bs.base.entity.BaseEntity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author HuXing
 * @date 2018/2/26  10:13
 */
@TableName("sys_user")
public class SysUserDO extends BaseEntity<SysUserDO> {

    /**
     * 使用者id
     */
    @TableId
    @JsonView(View.AjaxData.class)
    private Long userId;
    /**
     * 用户名
     */
    private String username;
    /**
     * 用户真实姓
     */
    @JsonView(View.AjaxData.class)
    private String name;
    /**
     * 密码
     */
    private String password;
    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 部门名称
     */
    @JsonView(View.AjaxData.class)
    private String deptName;
    /**
     * 邮箱
     */
    @JsonView(View.AjaxData.class)
    private String email;
    /**
     * 手机号
     */
    private String mobile;
    /**
     * 状态 0:禁用，1:正常
     */
    private Integer status;
    /**
     * 角色
     */
    @TableField(exist = false)
    private List<Long> roleIds;
    /**
     * 出身日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birth;
    /**
     * 性别
     */
    private Long sex;
    /**
     * 图片ID
     */
    private Long picId;
    /**
     * 现居住地
     */
    private String liveAddress;
    /**
     * 爱好
     */
    private String hobby;
    /**
     * 省份
     */
    private String province;
    /**
     * 所在城市
     */
    private String city;
    /**
     * 所在地区
     */
    private String district;


    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public List<Long> getRoleIds() {
        return roleIds;
    }

    public void setRoleIds(List<Long> roleIds) {
        this.roleIds = roleIds;
    }

    public Long getSex() {
        return sex;
    }

    public void setSex(Long sex) {
        this.sex = sex;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Long getPicId() {
        return picId;
    }

    public void setPicId(Long picId) {
        this.picId = picId;
    }

    public String getLiveAddress() {
        return liveAddress;
    }

    public void setLiveAddress(String liveAddress) {
        this.liveAddress = liveAddress;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    @Override
    public String toString() {
        return "SysUserDO{" +
                "userId=" + userId +
                ", username='" + username + '\'' +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", deptId=" + deptId +
                ", deptName='" + deptName + '\'' +
                ", email='" + email + '\'' +
                ", mobile='" + mobile + '\'' +
                ", status=" + status +
                ", roleIds=" + roleIds +
                ", sex=" + sex +
                ", birth=" + birth +
                ", picId=" + picId +
                ", liveAddress='" + liveAddress + '\'' +
                ", hobby='" + hobby + '\'' +
                ", province='" + province + '\'' +
                ", city='" + city + '\'' +
                ", district='" + district + '\'' +
                '}';
    }

    @Override
    protected Serializable pkVal() {
        return this.userId;
    }

    public SysUserDO(String username) {
        this.username = username;
    }

    public SysUserDO() {

    }
}
